/************************
 * 描述：商品列表
 * 作者：Gibil
 * 时间：2013-12-21
************************/
//加载时判断商品当天是否点过赞
function checkTime(newTime,oldTime){//判断两次点击相隔的时间！
      var disD = newTime.DateDiff('d', oldTime);
       if(disD>-1){//如果时间相差一天
       return true;
        }else{
       return false;
       }   
      }
function setLocalItem(key,value){//重写本地缓存方法
         localStorage.setItem(key,value);
      }
function checkId(id){
          var newArr = JSON.stringify(localStorage);//将缓存数据转换为数组
          var str =  "" + id +"";
          if(newArr.toString().indexOf(str)>-1){//判断缓存中是否存在该Id，如果存在返回true，否则返回false
             return true;
          }else{
              return false;
          }
      }
function checkZan(id){//判断加载时页面是否点过赞
    var nowTime = new Date();
    var isLike;//1为不可以赞，0为可以赞
    if(!checkId(id)){//如果不存在，则为zan添加样式
       islike = 0;
    }else{
        var thisId = "" + id +"";//将该id存储为字符串
        var oldTime = localStorage.getItem(thisId);
        if(checkTime(nowTime,oldTime)) {
            isLike = 1;//如果时间间隔小于一天
        }else{
            isLike = 0;
        }        
    }
    return isLike;
}
var ProductList = {
    scrollCount: 0, //触发获取数据的数次(+1等于页码)
    maxCount: 0, //可触发获取数据的总数(总页数)
    pageSize: 10, //每次触发取的记录条数
    curClsid: '', //当前选中的分类ID
    isLoading: false, //列表是否加载中，避免重复触底加载
    memberId: '', //当前登录的会员ID

    //获取数据
    getMore: function (type, first) {
        if (ProductList.isLoading)	//取数过程中，先停止重复取数
            return;

        if (first) {
            ProductList.scrollCount = 1;
            $('#noRec').hide();
            $('.list .lileft,.list .liright').html('');
        }
        else {
            ProductList.scrollCount += 1;
            //大于最大数量时不获取数据
            if (ProductList.scrollCount > 1 && ProductList.scrollCount > ProductList.maxCount) {
                return;
            }
        }
        $('#list_cloading').show(); //显示加载框
        ProductList.isLoading = true;
        setTimeout('ProductList.d("' + type + '","' + ProductList.curClsid + '")', 1000); //模拟延迟取数据
    },

    //异步获取商品列表
    d: function (type, clsid) {
        var dataJson = { "act": type,  "comid":comid, "clsid": clsid, "currpage": ProductList.scrollCount, "pagesize": ProductList.pageSize, "like": 1, "sort": 52, "imgSize": "" }; //按排序ID
        $.ajax({
            type: 'POST',
            url: '/ajax/product.ashx',
            dataType: 'json',
            data: dataJson,
            success: function (msg, textStatus) {
                if (typeof (msg.iRetCnt) != "undefined") {
                    ProductList.maxCount = msg.iPageCount;
                    var $lCon = $('.list .lileft');
                    var $rCon = $('.list .liright');
                    if (msg.iRetCnt > 0) {
                        $('#noRec').hide();

                        var lHtml = '', rHtml = '';
                        for (var i = 0; i < msg.Data.length; i++) {
                            var proHtml = '';
                            proHtml += '<div class="lidiv">';
                            proHtml += '<div class="liimg">';
                            proHtml += '<a href="' + msg.Data[i].url + '"><img src="' + msg.Data[i].pic + '" alt="' + msg.Data[i].name + '" /></a>';
                            proHtml += '</div>';
                            proHtml += '<div class="litext">';
                            proHtml += '<span>￥' + msg.Data[i].salePrice + '</span><div class="ltri">'
                                + '<em>' + (msg.Data[i].likecount > 0 ? msg.Data[i].likecount : '') + '</em>'
                                +  '<a pid="' + msg.Data[i].pid + '" class="star' +  (checkZan(msg.Data[i].pid) ? ' select' : '') + '" onclick="ProductList.doZan(this);"></a></div>';
                            proHtml += '<div class="clear"></div>';
                            proHtml += '</div>';
                            proHtml += '</div>';
                            if (i % 2 == 0) {
                                lHtml += proHtml;
                            } else {
                                rHtml += proHtml;
                            }
                        }
                        if (ProductList.scrollCount > 1) {
                            $lCon.append(lHtml);
                            $rCon.append(rHtml);
                        } else {
                            $lCon.html(lHtml);
                            $rCon.html(rHtml);
                        }
                    }
                    else {
                        $lCon.html('');
                        $rCon.html('');
                        $('#noRec').show();
                    }

                    $('#list_cloading').hide(); //隐藏加载框
                }
                
                ProductList.isLoading = false;
            },
            error: function (textStatus) {
                ProductList.isLoading = false;
                $('#list_cloading').hide(); //隐藏加载框
            }
        });
    },

   //赞
    doZan: function (obj) {
        var $this = $(obj);
        var id = $this.attr('pid');
        var $num = $this.parent().find('em');
        var likeNum = $.trim($num.text()).length > 0 ? parseInt($.trim($num.text())) : 0;
        $this.css({"position":"relative"});
        var time = new Date();
        if (localStorage) { //判断浏览器是否支持本地存储
        if (!checkId(id)) {//如果缓存中没有存在该id，则存储该id，并执行相应的事件
            setLocalItem(id,time);
            act($this);
            console.log(localStorage);
          } else {//如果缓存中存在该数据.则判断与上次点击的时间
            var thisId = "" + id +"";//将该id存储为字符串
            var oldTime = localStorage.getItem(thisId);
            if (checkTime(time,oldTime)) {
                $.Alert('亲，今天您已点为该商品点过赞了，请明天再来！',290);
            } else {
              setLocalItem(id,time);
              act($this);
            }
          }
         function act(obj) {
          var $this = obj;
          var isLike = $this.hasClass('select'); //是否已喜欢
          $.ajax({
            url: '/ajax/product.ashx',
            data: { 'act': 'zan', 'pid': $this.attr('pid'), 'islike': 1 }, //注意islike参数取反
            success: function (msg) {
                if (msg == "1") {
                    if (isLike) $this.removeClass('select');
                    else $this.addClass('select');
                    var $num = $this.parent().find('em');
                    var likeNum = $.trim($num.text()).length > 0 ? parseInt($.trim($num.text())) : 0;
                    likeNum++;
                    if (likeNum > 0) $num.text(likeNum);
                    else $num.text('');                 
                } 
              }
           });
          obj.append('<b>+1</b>');
          obj.find('b').css({"position":"absolute","top":"-5px","right":"-5px","color":"red"}).animate({
            "top": "-1000px",
            "opacity": "0"
          }, 1000,function(){
            $(this).remove();
          });
          }
        }
    }
}

//判断是否有分类参数，有则设置选中分类。注意加上;号防止前面的方法没有结束
; (function () {
    //获取路径参数
    var getUrlParam = function (name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
        var r = window.location.search.substr(1).match(reg);  //匹配目标参数
        if (r != null) return unescape(r[2]); return null; //返回参数值
    }
    var selClass = getUrlParam('classid'); //是否有分类参数
    if (selClass) {
        var $cls = $('#navSlider a[cid="' + selClass + '"]');
        if ($cls.length) {
            $('#navSlider a.current').removeClass('current');
            $cls.addClass('current');
            ProductList.curClsid = selClass;
        }
    }
})();

$(function () {
    $(window).scroll(function () {
        //滚动高度 + 窗口高度 + (底部导航高度 + 版权块高度) >= 文档高度，注意：文档高度不包括fixed定位的元素（分类导航、底部导航）
        if ($(document).scrollTop() + $(window).height() + (50 + 50) >= $(document).height()) {
            ProductList.getMore('list', false); //获取数据
        }
    });

    //获取分类的商品列表
    $('#navSlider a').click(function () {
        if ($(this).hasClass('current')) return;
        $('#navSlider a.current').removeClass('current');
        $(this).addClass('current');
        ProductList.curClsid = $(this).attr('cid');
        ProductList.getMore('list', true);
    });

    ProductList.getMore('list', true);
});
//时间处理函数
Date.prototype.DateDiff = function(strInterval, dtEnd) {
      var dtStart = this;
      if (typeof dtEnd == 'string') //如果是字符串转换为日期型
      {
        dtEnd = StringToDate(dtEnd);
      }
      switch (strInterval) {
        case 's':
          return parseInt((dtEnd - dtStart) / 1000); //获取秒
        case 'n':
          return parseInt((dtEnd - dtStart) / 60000);
        case 'h':
          return parseInt((dtEnd - dtStart) / 3600000);
        case 'd':
          return parseInt((dtEnd - dtStart) / 86400000);
        case 'w':
          return parseInt((dtEnd - dtStart) / (86400000 * 7));
        case 'm':
          return (dtEnd.getMonth() + 1) + ((dtEnd.getFullYear() - dtStart.getFullYear()) * 12) - (dtStart.getMonth() + 1);
        case 'y':
          return dtEnd.getFullYear() - dtStart.getFullYear();
      }
    }
function StringToDate(DateStr) {
      var converted = Date.parse(DateStr);
      var myDate = new Date(converted);
      if (isNaN(myDate)) {
        //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';
        var arys = DateStr.split('-');
        myDate = new Date(arys[0], --arys[1], arys[2]);
      }
      return myDate;
    }